I would like to see you free up some I/O (especially hardware i²c) for hardware hackers. By adding a a couple of shift registers, one for selecting a line and one for reading which keys is pressed on that line, a lot of I/O could be saved.