Arduino as IO expander

Perhaps my google foo is weak but has anybody done an arduino as an IO ex-pander. I found one that just that it emulating an existing GPIO ex-pander but I'm thinking that it should do more. At minimum I would expect to access all the digital and analog pins including PWM functions. I'm thinking attached via i2c and extending the wiring lib so they can be directly accessed.

I don’t know if anyone has done it but but there’s no reason not to, it’s already an IO expander for a PC if you run Firmata.

You can write a program that looks like a complex IO device to another Arduino.