# File lib/camping-unabridged.rb, line 183
183:     def R(c,*g)
184:       p,h=/\(.+?\)/,g.grep(Hash)
185:       g-=h
186:       raise "bad route" unless u = c.urls.find{|x|
187:         break x if x.scan(p).size == g.size && 
188:           /^#{x}\/?$/ =~ (x=g.inject(x){|x,a|
189:             x.sub p,U.escape((a.to_param rescue a))}.gsub(/\\(.)/){$1})
190:       }
191:       h.any?? u+"?"+U.build_query(h[0]) : u
192:     end