Just to be clear, are you intending in switching analogue or digital signals (sounds like analogue if your possible input states are 0, +3.3, +5)?
A multiplexer generally takes n inputs to 1 output (or 1 input to n outputs as a demultiplexer) , so isn't exactly what you want - what you've described is more like a matrix switcher. If only only need to create ONE route at a time then #3 above is how I would go about it - if you need (for example) input 1 to got to output 2 while input 3 also goes independently to output 4, then that's going to be rather more complex.
I had to read Pommie's idea twice before it clicked, but that's also a neat approach, if you really do just need to deal in three-level logic.