code: public function matchRequest(Request $request): array
      {
          $this->framework->initialize(true);
  
          $pathInfo = rawurldecode($request->getPathInfo());
  
          if (
              '/' === $pathInfo
              || empty($GLOBALS['TL_HOOKS']['getPageIdFromUrl'])
              || !\is_array($GLOBALS['TL_HOOKS']['getPageIdFromUrl'])
              || ($this->prependLocale && preg_match('@^/([a-z]{2}(-[A-Z]{2})?)/$@', $pathInfo))
          ) {
              return $this->requestMatcher->matchRequest($request);
          }
  
          @trigger_error('Using the "getPageIdFromUrl" hook has been deprecated and will no longer work in Contao 5.0.', E_USER_DEPRECATED);
  
          $locale = null;
          $fragments = null;
  
          /** @var Config $config */
          $config = $this->framework->getAdapter(Config::class);
  
          if ($config->get('folderUrl')) {
              try {
                  $match = $this->requestMatcher->matchRequest($request);
                  $fragments = $this->createFragmentsFromMatch($match);
                  $locale = $match['_locale'] ?? null;
              } catch (ResourceNotFoundException $e) {
                  // continue and parse fragments from path
              }
          }
  
          if (null === $fragments) {
              $pathInfo = $this->parseSuffixAndLanguage($pathInfo, $locale);
              $fragments = $this->createFragmentsFromPath($pathInfo);
          }
  
          if ($this->prependLocale) {
              if (null === $locale) {
                  throw new ResourceNotFoundException('Locale is missing');
              }
  
              /** @var Input $input */
              $input = $this->framework->getAdapter(Input::class);
              $input->setGet('language', $locale);
          }
  
          $fragments = $this->executeLegacyHook($fragments);
          $pathInfo = $this->createPathFromFragments($fragments, $locale);
  
          return $this->requestMatcher->matchRequest($this->rebuildRequest($pathInfo, $request));
      }
docs: {@inheritdoc}