allow the argument to be given multiple times (only valid for the last argument)

@return $this
547502
public function multiple() {
        $this->validated = false;
        $this->config[self::MULTIPLE] = true;
        return $this;
    }
427697
public function andHaving($_)
    {
        RecursiveArgs::each(func_get_args(), function ($arg) {
            $this->havingClauses[] = $arg;
        });

        return $this;
    }
616424
protected function setShortcut()
    {
        if (strpos($this->input, '|') !== false) {
            list($this->shortcut, $this->input) = explode('|', $this->input);
        }

        return $this;
    }
556317
protected function onlyPossible(): self
    {
        if (count($this->types) < 2) {
            return $this;
        }

        $possible = $this->getPossibleTypes($this->value);

        return empty($possible) ? $this : $this->setTypes($possible);
    }
413699
public function setArgument($argument, $value)
    {
        Arr::set($this->arguments, $argument, $value);

        return $this;
    }
1085476
public function via()
    {
        $args = func_get_args();
        if(count($args) && is_array($args[0])){
            $args = $args[0];
        }
        $this->methods = array_merge($this->methods, $args);

        return $this;
    }
1195153
public function prune()
    {
        $args = func_get_args();
        $this->prunes = array_merge($this->prunes, $this->args_to_array($args));

        return $this;
    }
1139611
public function filter()
    {
        $opts = func_get_args();
        $callable = array_shift($opts);

        // allow for a false call
        if (!is_callable($callable)) {
            return $this;
        }

        array_unshift($opts, $this);
        return call_user_func_array($callable, $opts);
    }
707220
public function appendArgument($argument) {
    if (is_scalar($argument)) {
      $argument = Node::fromValue($argument);
    }

    if ($argument instanceof ExpressionNode) {
      /** @var Node $argument */
      $this->arguments->appendItem($argument);
    }
    else {
      throw new \InvalidArgumentException();
    }

    return $this;
  }
98144
public function addArgument($arg)
    {
        if (!is_scalar($arg)) {
            throw new InvalidArgumentException('scalar', 0);
        }
        if (!in_array($arg, $this->arguments)) {
            $this->arguments[] = $arg;
        }

        return $this;
    }
727901
public function prependArgument($argument) {
    if (is_scalar($argument)) {
      $argument = Node::fromValue($argument);
    }

    if ($argument instanceof ExpressionNode) {
      /** @var Node $argument */
      $this->arguments->prependItem($argument);
    }
    else {
      throw new \InvalidArgumentException();
    }

    return $this;
  }
214701
public function or(...$arguments): self
    {
        $op = self::OP_OR;

        // just update last where op
        if (isset($this->query['where'])) {
            $this->query['where'][count($this->query['where']) - 1][1] = $op;
        }

        if (empty($arguments)) return $this;

        $query = $arguments[0] ?? null;
        $queryParams = $arguments[1] ?? null;

        return $this->where($query, $queryParams, $op);
    }
27331
public function limitedAskCommand(): void
    {
        $times = (int)$this->input->getOpt('limit', 3);

        if ($this->input->getBoolOpt('nv')) {
            $a = Interact::limitedAsk('you name is: ', '', null, $times);
        } else {
            $a = Interact::limitedAsk('you name is: ', '', function ($val) {
                if (!\preg_match('/^\w{2,}$/', $val)) {
                    Show::error('Your input must match /^\w{2,}$/');
                    return false;
                }

                return true;
            }, $times);
        }

        $this->write('Your answer is: ' . $a);
    }
159858
protected function reset()
    {
        $this->scriptName      = null;
        $this->commandName     = null;
        $this->options         = [];
        $this->arguments       = [];

        return $this;
    }
1173151
public function reset()
    {
        $this->argumentsAccessor = new ArrayAccessor($this->persistedArguments);
        $this->stateChanged = false;
        return $this;
    }
940232
public function push(/* variadic arguments allowed */): self
    {
        $this->generatorToArray();

        if (\func_num_args()) {
            $args = \func_get_args();
            \array_push(...[&$this->array], ...$args);
        }

        return $this;
    }
20468
public function push(/* variadic arguments allowed */)
    {
        if (func_num_args()) {
            $args = array_merge([&$this->elements], func_get_args());
            call_user_func_array('array_push', $args);
        }

        return $this;
    }