rewrite 'once' method.

Inspired by Node.js’s EventEmitter