wire.h multiple slave addresses
Is it possible to use wire.h on an Arduino Uno to act as a slave for more than one address? 


The quick answer is: No!

The ATmega328 2-Wire Serial Interface has a special register for the address match in slave mode. This only allows a single address to be matched. 


  22.5.4   Address Match Unit 
  
  The Address Match unit checks if received address bytes match the seven-bit address in the TWI Address 
  Register (TWAR). If the TWI General  Call Recognition Enable (TWGCE)
  bit in  the TWAR is written to one, all  incoming address bits will
  also be compared against the General Call address. Upon  an address
  match, the  Control Unit is informed, allowing correct action to be
  taken. The TWI may or may not acknowledge its address,  depending on
  settings in the TWCR. The Address Match  unit is able to compare
  addresses even when the AVR  MCU is in sleep mode, enabling the MCU to
  wake up if addressed by a Master. Reference, pp. 213


On an ATtiny with USI it is actually possible to implement multiple address matching as this is controlled by software. 

Last, a pure software approach could be used, i.e. implement the I2C protocol with external interrupt pin and fast pin access. See Amtel Application Note AVR154. The code for this app-note can be found on github. This could be modified to allow multiple slave addresses. 

Cheers!