public function addGroup($prefix, array $middleware, callable $callback)
    {
        $previousMiddlewareStack = $this->middlewareStack;
        $previousGroupPrefix = $this->currentGroupPrefix;
        $this->currentGroupPrefix = $previousGroupPrefix . $prefix;
        $this->middlewareStack = array_merge($previousMiddlewareStack, $middleware);
        $callback($this);
        $this->currentGroupPrefix = $previousGroupPrefix;
        $this->middlewareStack = $previousMiddlewareStack;
    }