public function configure($what)
    {
        if (is_array($what)) {
            $options = $what;
        } elseif (is_readable($what)) {
            $options = include $what;
        } else {
            throw new Exception("Configure item '" . htmlentities($what)
                . "' is not an array nor a readable file.");
        }

        $this->config = array_merge($this->config, $options);
        return $this->config;
    }