Un pequeño ejemplo:
Semáforo Manual CSS
La trampa es que los elementos deben ser hermanos y solo pueden afectar a los que los siguen.
Es decir si en vez de botones hubiera sido solo con las luces, no podría haber cambiado la luz roja a amarilla al hacer hover sobre la luz amarilla.
El otro caso es cuando se hace hover sobre la luz verde, no lograríamos cambiar ninguna de las dos anteriores.
Debido a esto es que hice trampa y puse esos botones, que son hermanos precedentes a las luces.
Saludos