Add some edge cases

Note the last two new cases are fail now.

There are also some cases which I am not sure which is the "right" solution, pls see the comments.
If we have another component which will wrap only statement with {} , we could put it before semi in the process chain.