function next(err) {
        // next callback
        var handler = self._stack[index++];

        // all done or request closed
        if (!handler || req.connectionState() === 'close') {
            process.nextTick(function nextTick() {
                return done(err, req, res);
            });
            return;
        }

        // call the handler
        call(handler, err, req, res, self.onceNext ? self._once(next) : next);
    }
Handle server requests, punting them down
the middleware stack.

@public
@memberof Chain
@instance
@param {Request} req - request
@param {Response} res - response
@param {Function} done - final handler
@returns {undefined} no return value