/**
  * Get the URL for a given route instance.
  *
  * @param  \Routing\Route  $route
  * @param  array  $parameters
  * @param  bool  $absolute
  * @return string
  *
  * @throws \BadMethodCallException
  */
 protected function toRoute($route, array $parameters, $absolute)
 {
     $pattern = $route->uri();
     if ($this->legacyRouting && preg_match('#\\(:\\w+\\)#', $pattern) === 1) {
         list($pattern) = RouteParser::parse($pattern);
     }
     $domain = $this->getRouteDomain($route, $parameters);
     $uri = strtr(rawurlencode($this->trimUrl($root = $this->replaceRoot($route, $domain, $parameters), $this->replaceRouteParameters($pattern, $parameters))), $this->dontEncode) . $this->getRouteQueryString($parameters);
     return $absolute ? $uri : '/' . ltrim(str_replace($root, '', $uri), '/');
 }