fix "once" bug

- erase only key value (instead of all) when event emits 
- added test cas