function next(suite) {
    self.suite = suite;

    if (!suite) {
      self.suite = orig;
      return fn();
    }

    self.hook(name, function(err){
      if (err) {
        self.suite = orig;
        return fn(err);
      }

      next(suites.pop());
    });
  }
Run hook `name` for the given array of `suites`
in order, and callback `fn(err)`.

@param {String} name
@param {Array} suites
@param {Function} fn
@api private