If I understand your code correctly, that's how I expected it to work, i.e., you can actually do something like this:
<rule source="(\w*)/(\w+)/?" destination="Room.aspx?ownerUserID=$1&roomName=$2" />
However, the code that I'm using (borrowed from here: http://www.simple-talk.com/dotnet/asp.net/a-complete-url-rewriting-solution-for-asp.net-2.0/) doesn't seem to work that way. Here's a snippet:
// new path to rewrite to
string rew = cfg.RewriteBase + path;
// save original path to HttpContext for further use
HttpContext.Current.Items.Add("OriginalUrl", HttpContext.Current.Request.RawUrl);
// rewrite
Debug.WriteLine(string.Format("Rewriting {0} to {1}", HttpContext.Current.Request.Path, rew));
HttpContext.Current.RewritePath(rew);
// new path to rewrite to
string rew = cfg.RewriteBase + path;
// save original path to HttpContext for further use
HttpContext.Current.Items.Add("OriginalUrl", HttpContext.Current.Request.RawUrl);
// rewrite
Debug.WriteLine(string.Format("Rewriting {0} to {1}", HttpContext.Current.Request.Path, rew));
HttpContext.Current.RewritePath(rew);
Am I doing anything wrong?