LCD "Backpack" or Port Expander

OK, so I am starting a fairly ambitious project (especially for my first project). It involves an Adafruit Wave Shield, a 20x4 RGB+ LCD screen, a bunch of toggle switches (some illuminated, some not), and maybe a 12 key keypad. My question is: should I use some sort of LCD "backpack" or a port expander (or both)?

Note: I do want to be able to control the backlight color from the Arduino.


Also, I connected the wave shield the "normal" way.

The Adafruit i2c/spi backpack is just a port expander. (Actually, there are two on the board.)

Keep in mind that switches can be matrixed.

[quote author=James C4S link=topic=144898.msg1088447#msg1088447 date=1359133245] Keep in mind that switches can be matrixed. [/quote]

I don't know much about matrixing switches, but I was under the impression that I can only read one switch at a time in a matrix. I need to be able to read the state of 6 toggle switches. When I flip, say, 3 different switches, I need the Arduino to know exactly which switches are on and which are off. Can I do this with a matrix?

Yes, matrixed keys can do it. You just may need to write your own code.

Most lcd backpack won't support that rgb backlight.