 	<cfargument name="action" type="string" required="false" default="" hint="Action to call when route matches (unless the action name exists in the pattern)">
 	<cfscript>
 		var loc = {};
-		
+
 		// throw errors when controller or action is not passed in as arguments and not included in the pattern
 		if (!Len(arguments.controller) && arguments.pattern Does Not Contain "[controller]")
 			$throw(type="Wheels.IncorrectArguments", message="The 'controller' argument is not passed in or included in the pattern.", extendedInfo="Either pass in the 'controller' argument to specifically tell Wheels which controller to call or include it in the pattern to tell Wheels to determine it dynamically on each request based on the incoming URL.");
 		if (!Len(arguments.action) && arguments.pattern Does Not Contain "[action]")
 			$throw(type="Wheels.IncorrectArguments", message="The 'action' argument is not passed in or included in the pattern.", extendedInfo="Either pass in the 'action' argument to specifically tell Wheels which action to call or include it in the pattern to tell Wheels to determine it dynamically on each request based on the incoming URL.");
-		
+
 		loc.thisRoute = Duplicate(arguments);
 		loc.thisRoute.variables = "";
 		loc.iEnd = ListLen(arguments.pattern, "/");

				if (loc.key != "functionName")
					application.wheels.functions[arguments.functionName][loc.key] = arguments[loc.key];
			}
		}	
		else
		{
			application.wheels[StructKeyList(arguments)] = arguments[1];
		}	
	</cfscript>
</cffunction>


	<cfargument name="port" type="numeric" required="false" default="#application.wheels.functions.URLFor.port#" hint="Set this to override the current port number">
	<cfscript>
		var loc = {};
		loc.params = {};
		if (structkeyexists(variables, "params"))
			structappend(loc.params, variables.params, true);
		if (application.wheels.environment != "production")
		{
			if (arguments.onlyPath && (Len(arguments.host) || Len(arguments.protocol)))
