Ti è sfuggito il code...
A parte il fatto che dovresti usare degli else if o switch/case, indirizzando direttamente ad esempio la porta D ci vuole un attimo:
void loop ()
{
char key = keypad.getKey();
PORTD |= key&0b00011111;
PORTD &= key|0b11100000;
}
In questo modo usi gli I/O da 0 a 4, ma puoi modificare il codice per indirizzare altri bit o la porta B o C.