public function load($source, Configuration $config = null): Configuration
    {
        if (null === $config) {
            $config = new Configuration();
        }
        $loader = $this->getLoader($source, $config);
        if (!$loader->supports($source)) {
            throw new \InvalidArgumentException('Unsupported configuration.');
        }

        $loader->load($source);

        return $config;
    }