code: function argumentsContainOptions (args) {
    if (args.length < 2) { // controller-only
      return false
    }
  
    if (_.isPlainObject(args[args.length - 1])) { // controller or options
      if (isClass(args[args.length - 2]) || _.isPlainObject(args[args.length - 2])) { // controller
        return true
      }
    }
  
    return false
  }
docs: Determine if the arguments list contains a trailing `opts` object.
  Possible combinations are as below (f = function, c = class, a = array, o = object)
  
  f(middleware), f(middleware), c(controller), o(opts)   => true
  f(middleware), f(middleware), o(controller), o(opts)   => true
  
  f(middleware), c(controller), o(opts)   => true
  f(middleware), o(controller), o(opts)   => true
  
  f(middleware), f(middleware), c(controller)  => false
  f(middleware), f(middleware), o(controller)  => false
  f(middleware), c(controller)                 => false
  f(middleware), o(controller)                 => false
  
  c(controller), o(opts)                  => true
  o(controller), o(opts)                  => true
  
  c(controller)                           => false
  o(controller)                           => false
  
  @returns {Boolean} - Whether the args array contains a trailing opts object