I used Charlieplexing to drive four LEDs, four buttons, and a beeper from a 6-pin PIC10F200 with only four GPIOs. (and one is input-only!) It was a lot of fun working out the correct TRIS/GPIO combinations. (and fitting the whole thing into 256 instructions and 16 bytes of RAM was fun too)
https://github.com/74hc595/TinySimon