Intro

This algorithm is very easy to use. It work's best for 4x4 and 7x7. You'll have to do some extra work on 6x6 and on 5x5 this algorithm doesn't work.

The first step

Choose a field to flip and click it's lower right neighbour. If you want to flip the last field in a row click the first one in the row below and repeat the usual method for this row again. That's it, this helps you solve the 4x4 and 7x7 games, no matter what you've clicked before. Go ahead and try. Anyway, for 6x6 you'll get stuck in the last row. The next paragraph describes how to solve it anyway.

Some extra work

You'll notice that this algorithm won't flip all fields in the last row of 6x6. That's why we must do some research in this case.

The setup is as follows: Start a new game and do this algorithm until you reach the last row. If you did it right field number 2 and 5 will remain unrevealed.
The procedure: Now you click on the first field in the first row, which we haven't used yet, and repeat the algorithm until you reach the last row again.
You'll notice that the status of the fields 2, 3 and 4 in the last row will change.

You now repeat this for all remaining fields in the first row. The following table will show you which impact a click in the first row will have on the last row. The representation is a bit mathematical, but still easy to understand. A 1 means 'click' or 'impact' and a 0 the opposite.

First row clickLast row impact
(1 0 0 0 0 0)(0 1 1 1 0 0)
(0 1 0 0 0 0) (1 1 0 1 1 0)
(0 0 1 0 0 0) (1 0 1 0 1 1)
(0 0 0 1 0 0) (1 1 0 1 0 1)
(0 0 0 0 1 0) (0 1 1 0 1 1)
(0 0 0 0 0 1) (0 0 1 1 1 0)

Now you know, which impact a click in the first row will have on the last row. And the good thing is, that these clicks can be combined. For example a click on the first and second field of the first row will switch the fields 1, 3 and 5 of the last row: (0 1 1 1 0 0) + (1 1 0 1 1 0) = (1 0 1 0 1 0) where 1+1=0.

Now you need to calculate the impact the other way. Which field do I need to click in the first row to change the status of fields x, y and z in the last row? You can spend a few minutes solving this via trial and error or make use of linear algebra, it's your choice. I hope you get the same results as I:
Wanted impactNeeded input
(1 0 0 0 0 0)(0 0 0 1 1 1)
(0 1 0 0 0 0) (0 0 1 1 0 1)
(0 0 1 0 0 0) (0 1 1 0 1 1)
(0 0 0 1 0 0) (1 1 0 1 1 0)
(0 0 0 0 1 0) (1 0 1 1 0 0)
(0 0 0 0 0 1) (1 1 1 0 0 0)

You can combine the results of this table too. If you want to change the status of the fields 1 and 2 in the last row, you'll have to click the 3 and 5 field in the first row: (0 0 0 1 1 1) + (0 0 1 1 0 1) = (0 0 1 0 1 0).

That's it. Go ahead and try!

Patterns

You can even create any pattern you want using this algorithm. Just use this algorithm on any field whose status you want to change.