public function get($keys, $type = self::CONFIG_ALL, $default = null)
    {
        $this->guardConfigSlot($type);

        $keys = (array) $keys;

        if (count($keys) === 1) {
            return array_key_exists($keys[0], $this->config[$type]) ? $this->config[$type][$keys[0]] : $default;
        }

        $current = $this->config[$type];

        foreach ($keys as $key) {
            if (!is_array($current) || !array_key_exists($key, $current)) {
                return $default;
            }

            $current = $current[$key];
        }

        return $current;
    }