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']
        );
    }
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']
        );
    }
@param array $configuration

@return array