public function addRoute($methods, $uri, $action)
{
if (is_string($action)) {
$action = ['uses' => $action, 'controller' => $action];
} elseif ($action instanceof Closure) {
$action = [$action];
}
$action = $this->mergeLastGroupAttributes($action);
$action = $this->addControllerMiddlewareToRouteAction($action);
$uri = $uri === '/' ? $uri : '/' . trim($uri, '/');
if (!empty($action['prefix'])) {
$uri = '/' . ltrim(rtrim(trim($action['prefix'], '/') . '/' . trim($uri, '/'), '/'), '/');
unset($action['prefix']);
}
$action['uri'] = $uri;
return $this->adapter->addRoute((array) $methods, $action['version'], $uri, $action);
}