never consider default pattern unused (closes #2267)
derive enum match if a pattern is an enum constructor (closes #2229)