You can do it with somewhere not on the list, but not as you wrote it. You said "stopping over in London a second time" but then said you would stop in Tehran. The location aside, you can't do that. You are limited to two stopovers in the continent of origin. It doesn't matter where the stopovers are, but you are limited to two total. They can be in the same place, they can be in different places, and you don't have to even use them at all. So if you were going to stop in London on your way back from GRU, and you wanted to use the two segments to make a side trip, you couldn't stop in London on your way back to Cairo.