docs: function mergeArgs(def, args, exclude) {
      exclude = splitArgs(exclude || []);
      def = normalizeArgs(def);
      args = normalizeArgs(args);
      var clone = def.slice(0);
      args.forEach(function (arg, i) {
          var next = args[i + 1];
          var isFlag = _flagExp.test(arg);
          var isFlagNext = _flagExp.test(next || '');
          var defIdx = def.indexOf(arg);
          // Arg exists check if flag that accepts value.
          if (~defIdx && isFlag && !isFlagNext) {
              clone[defIdx + 1] = next;
              args.splice(i + 1, 1);
          }
          // new arg just push.
          else if (!~defIdx) {
              clone.push(arg);
          }
      });
      return filterArgs(clone, exclude);
  }