I tried to create a parameter with the long name 'password' and it didn't work out well, since that conflicts with the method password(). Same would go for 'action', 'option', and so on. Perhaps the parsed options could come back in a separate object? Or be able to assign an alias to those option names?
Workaround currently is to use a different long name so that it doesn't conflict with those.