Watering the garden

Hi,
new challenge on this project...
I set the communications running,
set the I2c Clock running,
built the menu structure working,
put the I2C Lcd 16x2 to work
and build a 4 keys analogue keypad, which is almost working perfect :stuck_out_tongue:

And this is the challenge, put it keypad working perfect.

This is the behaviour:
At initial state, the lcd is light off.
When press EnterKey, it should light up and show data/time.
When press EnterKey again, it should shows the Menu, and navigate on the menu.

This is the tricky part. (debouncing is already being take care)
Delay command is not a possibility in this program, as it is doing "many things at the same time"

I need to be very fast on keys or the loop will "think" i am pressing the same key several times, and the program will light up and enter menu with just one press.
Or, when in menu, if i press UpKey or DownKey, it will move many items in one press.

Any ideas on how to avoid this behaviour?
Detect a "NOKEY" between two keys?