#1659 brought up an issue where you'd have both `each` and `if` on a custom tag. In that case, the each code would actually create an instance of the tag, even when the `if` expressions was false.
To get around this, we just have `each` also evaluate the `if` and skip items where it's false. That might sound like mixing concerns a bit too much, but I actually think the resulting code is easier to read. It's also probably faster, since we avoid creating and parsing DOM in the false case.