docs: function () {
      var middlewares = Array.prototype.slice.apply(arguments)
        , req = middlewares.splice(0, 1)
        , next = middlewares.pop()
      
      // Check other middlewares for client objects. If we find one, merge
      // it and ours together.
      for (var i = 0; i < middlewares.length; i++) {
        var middleware_obj = middlewares[i]
        if (middleware_obj.type == 'client') {
          utils.merge(middlewares[i], hist_obj)
          return undefined
        }
      }
      
      // If we get this far, no other middlewares match client type. So pass
      // our middleware object.
      next({'history': hist_obj})
      return undefined
    }