protected function rewriteRoutingSetRequestedAndDefaultParams (array & $allMatchedParams, $requestCtrlName = NULL, $requestActionName = NULL) {
		/** @var $this \MvcCore\Router */
		// in array `$allMatchedParams` - there could be sometimes presented matched 
		// or route specified values from configuration already, under keys `controller` and 
		// `action`, always with a value, never with `NULL`
		/** @var $request \MvcCore\Request */
		$request = & $this->request;
		$rawQueryParams = array_merge([], $request->GetParams(FALSE));
		// complete controller and action from any possible source
		list($ctrlDfltNamePc, $actionDfltNamePc) = $this->application->GetDefaultControllerAndActionNames();
		$toolClass = self::$toolClass;
		if ($requestCtrlName !== NULL) {
			$request->SetControllerName($requestCtrlName);
			$allMatchedParams[static::URL_PARAM_CONTROLLER] = $requestCtrlName;
			$rawQueryParams[static::URL_PARAM_CONTROLLER] = $requestCtrlName;
		} else if (isset($allMatchedParams[static::URL_PARAM_CONTROLLER])) {
			$request->SetControllerName($allMatchedParams[static::URL_PARAM_CONTROLLER]);
		} else {
			$defaultCtrlNameDashed = $toolClass::GetDashedFromPascalCase($ctrlDfltNamePc);
			$request->SetControllerName($defaultCtrlNameDashed);
			$allMatchedParams[static::URL_PARAM_CONTROLLER] = $defaultCtrlNameDashed;
		}
		if ($requestActionName !== NULL) {
			$request->SetActionName($requestActionName);
			$allMatchedParams[static::URL_PARAM_ACTION] = $requestActionName;
			$rawQueryParams[static::URL_PARAM_ACTION] = $requestActionName;
		} else if (isset($allMatchedParams[static::URL_PARAM_ACTION])) {
			$request->SetActionName($allMatchedParams[static::URL_PARAM_ACTION]);
		} else {
			$defaultActionNameDashed = $toolClass::GetDashedFromPascalCase($actionDfltNamePc);
			$request->SetActionName($defaultActionNameDashed);
			$allMatchedParams[static::URL_PARAM_ACTION] = $defaultActionNameDashed;
		}
		// complete params for request object - there have to be everything including ctrl and action
		$this->defaultParams = array_merge(
			// default params are merged with previous default params to have 
			// possibility to add domain params by extended module router
			$this->currentRoute->GetDefaults(), $this->defaultParams, 
			$allMatchedParams, $rawQueryParams
		);
		// redirect route with strictly defined match regular expression and not defined reverse could have `NULL` method result:
		$routeReverseParams = $this->currentRoute->GetReverseParams() ?: [];
		// complete really matched params from path - unset ctrl and action if ctrl and even action are not in pattern
		$pathOnlyMatchedParams = array_merge([], $allMatchedParams);
		$controllerInReverse	= in_array(static::URL_PARAM_CONTROLLER, $routeReverseParams, TRUE);
		$actionInReverse		= in_array(static::URL_PARAM_ACTION, $routeReverseParams, TRUE);
		if (!$controllerInReverse)	unset($pathOnlyMatchedParams[static::URL_PARAM_CONTROLLER]);
		if (!$actionInReverse)		unset($pathOnlyMatchedParams[static::URL_PARAM_ACTION]);
		// requested params - all really requested params for self URL addresses
		// building base params array, parsed from path, merged with all query params 
		// and merged later with given params array into method `Url()`.
		// There cannot be `controller` and `action` keys from route configuration,
		// only if ctrl and action is defined by query string, that's different
		$this->requestedParams = array_merge([], $pathOnlyMatchedParams, $rawQueryParams);
	}
protected function rewriteRoutingSetRequestedAndDefaultParams (array & $allMatchedParams, $requestCtrlName = NULL, $requestActionName = NULL) {
		/** @var $this \MvcCore\Router */
		// in array `$allMatchedParams` - there could be sometimes presented matched 
		// or route specified values from configuration already, under keys `controller` and 
		// `action`, always with a value, never with `NULL`
		/** @var $request \MvcCore\Request */
		$request = & $this->request;
		$rawQueryParams = array_merge([], $request->GetParams(FALSE));
		// complete controller and action from any possible source
		list($ctrlDfltNamePc, $actionDfltNamePc) = $this->application->GetDefaultControllerAndActionNames();
		$toolClass = self::$toolClass;
		if ($requestCtrlName !== NULL) {
			$request->SetControllerName($requestCtrlName);
			$allMatchedParams[static::URL_PARAM_CONTROLLER] = $requestCtrlName;
			$rawQueryParams[static::URL_PARAM_CONTROLLER] = $requestCtrlName;
		} else if (isset($allMatchedParams[static::URL_PARAM_CONTROLLER])) {
			$request->SetControllerName($allMatchedParams[static::URL_PARAM_CONTROLLER]);
		} else {
			$defaultCtrlNameDashed = $toolClass::GetDashedFromPascalCase($ctrlDfltNamePc);
			$request->SetControllerName($defaultCtrlNameDashed);
			$allMatchedParams[static::URL_PARAM_CONTROLLER] = $defaultCtrlNameDashed;
		}
		if ($requestActionName !== NULL) {
			$request->SetActionName($requestActionName);
			$allMatchedParams[static::URL_PARAM_ACTION] = $requestActionName;
			$rawQueryParams[static::URL_PARAM_ACTION] = $requestActionName;
		} else if (isset($allMatchedParams[static::URL_PARAM_ACTION])) {
			$request->SetActionName($allMatchedParams[static::URL_PARAM_ACTION]);
		} else {
			$defaultActionNameDashed = $toolClass::GetDashedFromPascalCase($actionDfltNamePc);
			$request->SetActionName($defaultActionNameDashed);
			$allMatchedParams[static::URL_PARAM_ACTION] = $defaultActionNameDashed;
		}
		// complete params for request object - there have to be everything including ctrl and action
		$this->defaultParams = array_merge(
			// default params are merged with previous default params to have 
			// possibility to add domain params by extended module router
			$this->currentRoute->GetDefaults(), $this->defaultParams, 
			$allMatchedParams, $rawQueryParams
		);
		// redirect route with strictly defined match regular expression and not defined reverse could have `NULL` method result:
		$routeReverseParams = $this->currentRoute->GetReverseParams() ?: [];
		// complete really matched params from path - unset ctrl and action if ctrl and even action are not in pattern
		$pathOnlyMatchedParams = array_merge([], $allMatchedParams);
		$controllerInReverse	= in_array(static::URL_PARAM_CONTROLLER, $routeReverseParams, TRUE);
		$actionInReverse		= in_array(static::URL_PARAM_ACTION, $routeReverseParams, TRUE);
		if (!$controllerInReverse)	unset($pathOnlyMatchedParams[static::URL_PARAM_CONTROLLER]);
		if (!$actionInReverse)		unset($pathOnlyMatchedParams[static::URL_PARAM_ACTION]);
		// requested params - all really requested params for self URL addresses
		// building base params array, parsed from path, merged with all query params 
		// and merged later with given params array into method `Url()`.
		// There cannot be `controller` and `action` keys from route configuration,
		// only if ctrl and action is defined by query string, that's different
		$this->requestedParams = array_merge([], $pathOnlyMatchedParams, $rawQueryParams);
	}
protected function rewriteRoutingSetRequestedAndDefaultParams ( array & $ allMatchedParams , $ requestCtrlName = NULL , $ requestActionName = NULL ) { /** @var $this \MvcCore\Router */ // in array `$allMatchedParams` - there could be sometimes presented matched  // or route specified values from configuration already, under keys `controller` and  // `action`, always with a value, never with `NULL` /** @var $request \MvcCore\Request */ $ request = & $ this -> request ; $ rawQueryParams = array_merge ( [ ] , $ request -> GetParams ( FALSE ) ) ; // complete controller and action from any possible source list ( $ ctrlDfltNamePc , $ actionDfltNamePc ) = $ this -> application -> GetDefaultControllerAndActionNames ( ) ; $ toolClass = self :: $ toolClass ; if ( $ requestCtrlName !== NULL ) { $ request -> SetControllerName ( $ requestCtrlName ) ; $ allMatchedParams [ static :: URL_PARAM_CONTROLLER ] = $ requestCtrlName ; $ rawQueryParams [ static :: URL_PARAM_CONTROLLER ] = $ requestCtrlName ; } else if ( isset ( $ allMatchedParams [ static :: URL_PARAM_CONTROLLER ] ) ) { $ request -> SetControllerName ( $ allMatchedParams [ static :: URL_PARAM_CONTROLLER ] ) ; } else { $ defaultCtrlNameDashed = $ toolClass :: GetDashedFromPascalCase ( $ ctrlDfltNamePc ) ; $ request -> SetControllerName ( $ defaultCtrlNameDashed ) ; $ allMatchedParams [ static :: URL_PARAM_CONTROLLER ] = $ defaultCtrlNameDashed ; } if ( $ requestActionName !== NULL ) { $ request -> SetActionName ( $ requestActionName ) ; $ allMatchedParams [ static :: URL_PARAM_ACTION ] = $ requestActionName ; $ rawQueryParams [ static :: URL_PARAM_ACTION ] = $ requestActionName ; } else if ( isset ( $ allMatchedParams [ static :: URL_PARAM_ACTION ] ) ) { $ request -> SetActionName ( $ allMatchedParams [ static :: URL_PARAM_ACTION ] ) ; } else { $ defaultActionNameDashed = $ toolClass :: GetDashedFromPascalCase ( $ actionDfltNamePc ) ; $ request -> SetActionName ( $ defaultActionNameDashed ) ; $ allMatchedParams [ static :: URL_PARAM_ACTION ] = $ defaultActionNameDashed ; } // complete params for request object - there have to be everything including ctrl and action $ this -> defaultParams = array_merge ( // default params are merged with previous default params to have  // possibility to add domain params by extended module router $ this -> currentRoute -> GetDefaults ( ) , $ this -> defaultParams , $ allMatchedParams , $ rawQueryParams ) ; // redirect route with strictly defined match regular expression and not defined reverse could have `NULL` method result: $ routeReverseParams = $ this -> currentRoute -> GetReverseParams ( ) ? : [ ] ; // complete really matched params from path - unset ctrl and action if ctrl and even action are not in pattern $ pathOnlyMatchedParams = array_merge ( [ ] , $ allMatchedParams ) ; $ controllerInReverse = in_array ( static :: URL_PARAM_CONTROLLER , $ routeReverseParams , TRUE ) ; $ actionInReverse = in_array ( static :: URL_PARAM_ACTION , $ routeReverseParams , TRUE ) ; if ( ! $ controllerInReverse ) unset ( $ pathOnlyMatchedParams [ static :: URL_PARAM_CONTROLLER ] ) ; if ( ! $ actionInReverse ) unset ( $ pathOnlyMatchedParams [ static :: URL_PARAM_ACTION ] ) ; // requested params - all really requested params for self URL addresses // building base params array, parsed from path, merged with all query params  // and merged later with given params array into method `Url()`. // There cannot be `controller` and `action` keys from route configuration, // only if ctrl and action is defined by query string, that's different $ this -> requestedParams = array_merge ( [ ] , $ pathOnlyMatchedParams , $ rawQueryParams ) ; }
When route is matched, set up request and default params.

Request params are necessary to complete any `self` URL, to route request
properly, to complete canonical URL and to process possible route redirection.

Default params are necessary to handle route filtering in and out and to
complete URL by any other route name for case, when some required param
is not presented in second `$params` argument in Url() method (then the
param is assigned from default params).

This method also completes any missing `controller` or `action` param
values with default values. Request params can not contain those
automatically completed values, only values really requested.
@param array			$allMatchedParams	All matched params completed `\MvcCore\Route::Matches();`,
where could be controller and action if it is defined in
route object, default param values from route and all
rewrite params parsed by route.
@param string|NULL	$requestCtrlName	Possible controller name value or `NULL` assigned directly
from request object in `\MvcCore\router::routeDetectStrategy();`
@param string|NULL	$requestActionName	Possible action name value or `NULL` assigned directly from
request object in `\MvcCore\router::routeDetectStrategy();`
@return void
When route is matched set up request and default params .