I've been playing around with first class environments [0] lately in g-fu [1], which allow convenient and flexible composition of data and behavior using only what was already there.
I have a feeling Lua might be playing similar tricks with its tables, but I lack enough experience to judge.