The following is not meant to be comprehensive, merely a brief introduction to the way that I remember the most common contractions:
In the warfare of contraction, Omega is the best. Omega always wins; the only vowel which in any way survives an encounter with omega is iota, and that as a subscript.
Epsilon, by contrast, is the weakest. When it encounters a long vowel, it disappears without a trace; when it encounters a short vowel, that vowel still gobbles it up, but lengthens. ο lengthens to ου (we can tell that ου is just a long ο, because ο + ο contracts to ου); another ε lengthens to ει (i.e. ε + ε = ει). α just lengthens to ᾱ.
α, η, and ο are somewhere in the middle. α beats η (they contract to ᾱ), and when either η or α encounter ο, they join forces and by their powers combined, they become the best of the vowels, ω.
Iota usually finds a way to survive, either by combining into a diphthong or by subscripting itself. The main exception, ironically, is ε + ι, which contracts to ει, which, by the time of Plato, was no longer a true diphthong (although it sometimes behaves like one in further contractions: ὁρᾳ, the 3rd person singular of ὁράω = ὁρά + ε + ι, vs ὁρᾶν, its infinitive = ὁρά + ε + εν; this is the distinction between “genuine” and “spurious” ει.)
υ does not actually participate in enough contractions that you need to worry about it.
ου behaves much like ο, helping α and η ascend to ω, and eating ε. ει either contracts as ε + ε, in which case it gets eaten by just about everything, or ε + ι, in which case it leaves a subscript or x + ι diphthong it its wake.