Well, you can write your test as follows:
myMap.get(x).flatMap(xVal => myMap.get(y).map(_ + xVal)) .orElse(myMap.get(x+y).filter(_ % 2 == 0))
But what you already know may be clearer for everyone who is trying to understand the intention. Please note that the first line (from flatMap to the end) can also be written as for understanding, as shown in @ziggystar's answer).
Perhaps the modular test part could be rewritten as a match if it looks cleaner:
if(myMap.contains(x) && myMap.contains(y)) Some(myMap(x) + myMap(y)) else myMap.get(x + y) match { case Some(z) if (z % 2 == 0) => Some(z) case _ => None }
source share