Detect more square patterns

As the one found in the benchmark `slowparts.py'
Oups, sorry it was late. I though this function always return the same AST. Forget my comment ;-)