consider infinite sets exhaustive only if they are the toplevel match subject (closes #2303)
do not cancel pattern matching if matched enum is empty (closes #2233)