code: function use(type, fn, options) {
      if (typeof type === 'string' || Array.isArray(type)) {
        fn = wrap(type, fn);
      } else {
        options = fn;
        fn = type;
      }
  
      var val = fn.call(this, this, this.base || {}, options || {}, this.env || {});
      if (typeof val === 'function') {
        this.fns.push(val);
      }
  
      if (typeof this.emit === 'function') {
        this.emit('use', val, this);
      }
      return this;
    }
docs: Call plugin `fn`. If a function is returned push it into the
  `fns` array to be called by the `run` method.