code: private function configureNewInstance($configuration)
      {
          $parameters = array_merge(
              [
                  'scheme' => $this->scheme,
                  'host' => $this->host,
                  'path' => $this->path,
                  'query' => $this->query,
                  'fragment' => $this->fragment,
                  'port' => $this->port,
                  'user' => $this->user,
                  'password' => $this->password,
              ],
              $configuration
          );
  
          return new self(
              $parameters['host'],
              $parameters['scheme'],
              $parameters['path'],
              $parameters['query'],
              $parameters['fragment'],
              $parameters['port'],
              $parameters['user'],
              $parameters['password']
          );
      }
docs: @param array $configuration
  
  @return array