public function uri(string $target, $parameters = []): UriInterface
    {
        if (strpos($target, ':') !== false) {
            list($controller, $action) = explode(':', $target);
        } else {
            $controller = $target;
            $action = $parameters['action'] ?? null;
        }

        if (!$this->config->hasController($controller)) {
            throw new VaultException("Unable to generate uri, undefined controller '{$controller}'");
        }

        return $this->route->withDefaults(compact('controller', 'action'))->uri($parameters);
    }