public function & SetOrCreateDefaultRouteAsCurrent ($routeName, $controllerPc, $actionPc, $fallbackCall = FALSE) {
		$controllerPc = strtr($controllerPc, '/', '\\');
		$ctrlActionRouteName = $controllerPc.':'. $actionPc;
		$request = & $this->request;
		if (isset($this->routes[$ctrlActionRouteName])) {
			$defaultRoute = $this->routes[$ctrlActionRouteName];
		} else if (isset($this->routes[$routeName])) {
			$defaultRoute = $this->routes[$routeName];
		} else {
			$routeClass = self::$routeClass;
			$pathParamName = static::URL_PARAM_PATH;
			$defaultRoute = $routeClass::CreateInstance()
				->SetMatch("#/(?<$pathParamName>.*)#")
				->SetReverse("/<$pathParamName>")
				->SetName($routeName)
				->SetController($controllerPc)
				->SetAction($actionPc)
				->SetDefaults([
					$pathParamName					=> NULL,
					static::URL_PARAM_CONTROLLER	=> NULL,
					static::URL_PARAM_ACTION		=> NULL,
				]);
			$anyRoutesConfigured = $this->anyRoutesConfigured;
			$this->AddRoute($defaultRoute, NULL, TRUE, FALSE);
			$this->anyRoutesConfigured = $anyRoutesConfigured;
			if (!$request->IsInternalRequest()) 
				$request->SetParam(static::URL_PARAM_PATH, ($request->HasParam(static::URL_PARAM_PATH)
					? $request->GetParam(static::URL_PARAM_PATH, '.*')
					: $request->GetPath())
				);
		}
		$toolClass = self::$toolClass;
		$request
			->SetControllerName(str_replace('\\', '/', 
				$toolClass::GetDashedFromPascalCase($defaultRoute->GetController())
			))
			->SetActionName(
				$toolClass::GetDashedFromPascalCase($defaultRoute->GetAction())
			);
		$this->currentRoute = $defaultRoute;
		if (!$fallbackCall) $this->selfRouteName = $routeName;
		return $defaultRoute;
	}