   defp next(["--" <> option | rest], _aliases, switches, strict?, allow_nonexistent_atoms?) do
     {option, value} = split_option(option)
     tagged = tag_option(option, switches, allow_nonexistent_atoms?)
-    do_next(tagged, value, "--" <> option, rest, switches, strict?, allow_nonexistent_atoms?)
+    next_tagged(tagged, value, "--" <> option, rest, switches, strict?)
   end
 
   # Handles -a, -abc, -abc=something

    {:error, argv}
  end

  defp do_next(tagged, value, original, rest, switches, strict?, allow_nonexistent_atoms?) do
    if strict? and not option_defined?(tagged, switches) do
      {:undefined, original, value, rest}
    else

        option_key = aliases[key]
        if key && option_key do
          IO.warn "multi-letter aliases are deprecated, got: #{inspect(key)}"
          next_tagged({:default, option_key}, value, original, rest, switches, strict?)
        else
          next(expand_multiletter_alias(option, value) ++ rest, aliases, switches, strict?, allow_nonexistent_atoms?)
        end
      true ->
        # We have a regular one-letter alias here
        tagged = tag_oneletter_alias(option, aliases, allow_nonexistent_atoms?)
        next_tagged(tagged, value, original, rest, switches, strict?)
    end
  end

