Instead of a hidden `if` here, would it be better to write `if macro != :has_and_belongs_to_many && join_table_matcher.matches?(@subject)` ?