Several new optimizations that give better translations for pattern matches

It happens for top-level `return`s, i.e., return out of the initial `MethodDef`. (not return of a `MethodDef` that is being inlined).