digispark - 2 pin push button to iterate through an hashmap
Even with a "clean" button, your while() loop will whip through all 5 hashmap values before you can release the button.
Switches and button aren't clean. They will (appear to) bounce, sending many pulses before they settle down to a fully on or fully off state. Read Nick Gammon's tutorial on de-bouncing switches.
I'm not familiar with your display but if it is a one-line display, and you .println() at it, will the newline character "scroll" the line of text off the display? This could explain why you didn't at least see the final line. You may need a plain .print() call in order not to do that.
Most LCD displays have a set of control codes to clear it, move the cursor, etc., which you would have to embed into the text string you send, or send using separate .print() calls. I don't see any provision in your code for including or sending those, so you'll need to fix that, too. Right now, I expect your display receives something like 
test0\ntest1\ntest2\ntest3\ntest4\nIt probably needs to see something more like\033Etest0, e.g., for the first one, etc. That cruft at the beginning of the string is the VT52-code,escE, for "Clear the display". (I have no idea what command set your display uses, but the VT-52 commands have been in use for ... um, hmmph! well, a long time, anyway. :)  You'll probably to replace it with whatever your particular device uses.