protected function _validate_request($segments)
    {
        if (count($segments) == 0) {
            return $segments;
        }

        /* locate module controller */
        if ($located = $this->locate($segments)) {
            return $located;
        }

        /* use a default 404_override controller */
        if (isset($this->routes['404_override']) && $this->routes['404_override']) {
            $segments = explode('/', $this->routes['404_override']);

            if ($located = $this->locate($segments)) {
                return $located;
            }
        }

        /* no controller found */
        show404('', true);
    }