Index: t/modules/alias.t
===================================================================
--- t/modules/alias.t	(revision 1632074)
+++ t/modules/alias.t	(working copy)
@@ -36,8 +36,8 @@
 #XXX: find something that'll on other platforms (/bin/sh aint it)
 my $script_tests = WINFU ? 0 : 4;
 
-my $tests = (keys %redirect) + (keys %rm_body) * 10 +
-            (keys %rm_rc) * 10 + 12 + $script_tests;
+my $tests = (keys %redirect) + (keys %rm_body) * 20 +
+            (keys %rm_rc) * 20 + 23 + $script_tests;
 
 #LWP required to follow redirects
 plan tests => $tests, need need_module('alias'), need_lwp;
@@ -60,6 +60,13 @@
              "/ali$i");
 }
 
+t_debug "verifying expression alias match with /expr/ali[0-9].";
+for (my $i=0 ; $i <= 9 ; $i++) {
+    ok t_cmp((GET_BODY "/expr/ali$i"),
+             $i,
+             "/ali$i");
+}
+
 my ($actual, $expected);
 foreach (sort keys %redirect) {
     ## make LWP not follow the redirect since we
@@ -84,6 +91,17 @@
     }
 }
 
+print "verifying body of perm and temp redirect match with expression support\n";
+foreach (sort keys %rm_body) {
+    for (my $i=0 ; $i <= 9 ; $i++) {
+        $expected = $i;
+        $actual = GET_BODY "/expr/$_$i";
+        ok t_cmp($actual,
+                 $expected,
+                 "/$_$i");
+    }
+}
+
 print "verifying return code of seeother and gone redirect match\n";
 foreach (keys %rm_rc) {
     ## make LWP not follow the redirect since we
@@ -99,6 +117,21 @@
     }
 }
 
+print "verifying return code of seeother and gone redirect match with expression support\n";
+foreach (keys %rm_rc) {
+    ## make LWP not follow the redirect since we
+    ## are just interested in the return code.
+    local $Apache::TestRequest::RedirectOK = 0;
+
+    $expected = $rm_rc{$_};
+    for (my $i=0 ; $i <= 9 ; $i++) {
+        $actual = GET_RC "/expr/$_$i";
+        ok t_cmp($actual,
+                 $expected,
+                 "$_$i");
+    }
+}
+
 ## create a little cgi to test ScriptAlias and ScriptAliasMatch ##
 my $string = "this is a shell script cgi.";
 my $cgi =<<EOF;
@@ -142,6 +175,17 @@
     skip "skipping test without CGI module";
 }
 
+if (have_cgi) {
+    ## with ScriptAlias in LocationMatch ##
+    t_debug "verifying ScriptAlias in LocationMatch with /expr/aliascgi-script";
+    ok t_cmp((GET_BODY "/expr/aliascgi-script"),
+             "$string\n",
+             "/aliascgi-script") unless WINFU;
+}
+else {
+    skip "skipping test without CGI module";
+}
+
 ## failure with ScriptAliasMatch ##
 t_debug "verifying bad script alias.";
 ok t_cmp((GET_RC "/aliascgi-nada"),
Index: t/conf/extra.conf.in
===================================================================
--- t/conf/extra.conf.in	(revision 1632074)
+++ t/conf/extra.conf.in	(working copy)
@@ -334,6 +334,25 @@
 
     ScriptAlias /cgi @SERVERROOT@/htdocs/modules/alias
     ScriptAliasMatch /aliascgi-(.*) @SERVERROOT@/htdocs/modules/alias/$1
+
+    <LocationMatch /expr/ali(?<number>[0-9])>
+        Alias @SERVERROOT@/htdocs/modules/alias/%{env:MATCH_NUMBER}.html
+    </LocationMatch>
+    <LocationMatch /expr/aliascgi-(?<suffix>.*)>
+        ScriptAlias @SERVERROOT@/htdocs/modules/alias/%{env:MATCH_SUFFIX}
+    </LocationMatch>
+    <LocationMatch /expr/p(?<number>[0-9])>
+        Redirect permanent http://@SERVERNAME@:@PORT@/alias/%{env:MATCH_NUMBER}.html
+    </LocationMatch>
+    <LocationMatch /expr/t(?<number>[0-9])>
+        Redirect temp http://@SERVERNAME@:@PORT@/alias/%{env:MATCH_NUMBER}.html
+    </LocationMatch>
+    <LocationMatch /expr/s(?<number>[0-9])>
+        Redirect seeother http://@SERVERNAME@:@PORT@/alias/%{env:MATCH_NUMBER}.html
+    </LocationMatch>
+    <LocationMatch /expr/g([0-9])>
+        Redirect gone
+    </LocationMatch>
 </IfModule>
 
 Alias /manual @inherit_documentroot@/manual
