Pass through block commands for extra checks
Fix parsing of nested loops
Check for empty end-of-block statements

end*() statements should not repeat the initial argument(s)
See also: #4