Consider the following piece of code:
Options[f] = {Option -> True};
f[x_, OptionsPattern[]] := Module[{option},
option = OptionValue@Option;
If[option, x + 1, x]
]
f[4, {{}, {}}, Option -> True, {}, {}]
f[4, {{}}, {}, {}]
f[4]
5
5
5
Why does the function f ignore that empty lists and returns the same output as without them instead of returning the same input ? How this behaviour can be avoided ?