What is the correct way of processing keyboard input with 4.6 EventSystem?

I am exploring the new EventSystem and its modules, and i am coming up with some ideas, but none of them seems to be just right. I want to read keyboard input for the game control (eg. walking, shooing, etc) but i want these keys not to be read if input is focused on UI.InputField or something similar that uses key events. But EventSystem sends these events to the selected gameObject. My question is, how should i properly read the events that were not consumed by the GUI? Is there some prefab solution, or do i have to override EventSystem?

Advanced idea: my game controller is hierarchic, some events could be consumed by the controller root ( consume escape to open main menu, pass everything else to whoever is listening below). Any default solution?

…Bump?

@Pangamini_1 did you figure this out?