/** @internal */
 private function findCachedUri($path, $filter, $absolute, $generate = false)
 {
     if ($this->skip($path, $filter)) {
         return $path;
     }
     $assetsHost = !$generate;
     $path = ltrim($path, '/');
     $name = '_imagine_' . $filter . $this->params->getRouteSuffix($assetsHost);
     $uri = $this->params->generateUrl($name, ['path' => $path], $absolute);
     $prefix = preg_quote($this->params->getCachePrefix($assetsHost), '#');
     if ($assetsHost) {
         $pattern = sprintf('#^((?:[a-z]+:)?//.*?)?(?:/\\w+[.]php)?(/%s.*?)$#i', $prefix);
         if (preg_match($pattern, $uri, $m)) {
             $uri = $m[1] . $m[2];
         }
     } elseif (!empty($this->defaultFrontController)) {
         $pattern = sprintf('#^((?:[a-z]+:)?//.*?)?(/\\w+[.]php)?(/%s.*?)$#i', $prefix);
         if (preg_match($pattern, $uri, $m)) {
             empty($m[2]) && ($uri = $m[1] . '/' . $this->defaultFrontController . $m[3]);
         }
     }
     return str_replace(urlencode($path), $path, $uri);
 }