def generate_for_default_route(params, fallback)
query_params = params.reject do |k,v|
[:controller, :action, :id, :format].include?(k.to_sym)
end
controller = params[:controller] || fallback[:controller]
raise "Controller Not Specified" unless controller
url = "/#{controller}"
if params[:action] || params[:id] || params[:format] || !query_params.empty?
action = params[:action] || fallback[:action]
raise "Action Not Specified" unless action
url += "/#{action}"
end
if params[:id]
url += "/#{params[:id]}"
end
if format = params[:format]
format = fallback[:format] if format == :current
url += ".#{format}"
end
unless query_params.empty?
url += "?" + Merb::Request.params_to_query_string(query_params)
end
url
end