support for optional tag, which takes priority and doesn't run any other rules if field is empty