# File lib/reststop.rb, line 416
    def R(c, *g)
      if Controllers.constants.include?(cl = c.class.name.split("::").last.pluralize)
        path = "/#{cl.underscore}/#{c.id}"
        path << ".#{@format.to_s.downcase}" if @format
        path << "/#{g.shift}" unless g.empty? 
        self / path
      elsif c.respond_to?(:restful?) && c.restful?
        base = c.name.split("::").last.underscore
        id_or_action = g.shift
        if id_or_action =~ /\d+/
          id = id_or_action
          action = g.shift
        else
          action = id_or_action
        end
        
        path = "/#{base}"
        path << "/#{id}" if id
        path << "/#{action}" if action
        path << ".#{@format.to_s.downcase}" if @format 
        path << "?#{g.collect{|a|a.collect{|k,v| U.escape(k)+"="+U.escape(v)}.join("&")}.join("&")}" unless g.empty? # FIXME: undefined behaviour if there are multiple arguments left
        return path
      else
        _R(c, *g)
      end
    end