Woah, this is very nice stuff! Some comments/questions:

1. Could you give an example of how it would behave if it had local
rebinding as in classbox?

2. I don't like the idea of having both #using and #include. I don't
want to think about which one to use; I just want to use the module! I
think this is getting even more messy than with the new mixin-feature.
Even right *now* people only use #include (and def included(mod);
mod.extend ClassMethods; end) because That's How Modules Work.

3. Is this expected behaviour?

module Ext
  refine(Object) do
    def to_json; "something"; end
  end
end

Fixnum.send(:using, Ext)
"Hello".to_json # => Works because #using worked at the file scope

This makes it impossible to add refinements within a included-callback.

---

Other than that: This is definitely a contender to sliced bread :-)

// Magnus Holm