protected function rewriteRouting ($requestCtrlName, $requestActionName) {
		$request = & $this->request;
		$requestedPathFirstWord = $this->rewriteRoutingGetReqPathFirstWord();
		$this->rewriteRoutingProcessPreHandler($requestedPathFirstWord);
		$routes = & $this->rewriteRoutingGetRoutesToMatch($requestedPathFirstWord);
		$requestMethod = $request->GetMethod();
		foreach ($routes as & $route) {
			/** @var $route \MvcCore\Route */
			if ($this->rewriteRoutingCheckRoute($route, [$requestMethod])) continue;
			$allMatchedParams = $route->Matches($request);
			if ($allMatchedParams !== NULL) {
				$this->currentRoute = clone $route;
				$this->currentRoute->SetMatchedParams($allMatchedParams);

				$this->rewriteRoutingSetRequestedAndDefaultParams(
					$allMatchedParams, $requestCtrlName, $requestActionName
				);
				if ($this->rewriteRoutingSetRequestParams($allMatchedParams)) continue;
				
				$this->rewriteRoutingSetUpCurrentRouteByRequest();
				break;
			}
		}
	}