code: function(key, value) {
      switch (utils.typeOf(key)) {
        case 'object':
          this.visit('option', key);
          break;
        case 'array':
        case 'string':
          if (typeof value === 'undefined') {
            return this.either(key, utils.get(this.defaults, key));
          }
          this.emit('option', key, value);
          utils.set(this.options, key, value);
          break;
        default: {
          throw new TypeError('expected key to be a string, object or array');
        }
      }
      return this;
    }
docs: Set or get an option.
  
  ```js
  app.option('a', true);
  app.option('a');
  //=> true
  ```
  @name .option
  @param {String} `key` The option name.
  @param {*} `value` The value to set.
  @return {*} Returns a `value` when only `key` is defined.
  @api public