¿Cómo actualizo dinámicamente las devoluciones de llamada de socket.io sin reiniciar el servidor?

Si tengo un directorio de archivos que dicen están en el siguiente formato:

module.exports = 'add': (socket, data...) -> console.log 'words:add handler'.rainbow, data... socket.emit 'talkback', 'hahahha' 

¿Cómo se incluyen esos archivos y cuando se modifican, actualice todos los clientes socket.io conectados para usar las nuevas devoluciones de llamada?

Si el nombre del archivo es words.controller.coffee , me gustaría que la callback sea words:add .

Entonces, cada vez que se conecta un nuevo socket, ¿cómo hago para que cada archivo que ya se ha cargado se vincule al socket? Y cuando un archivo cambia, debe dejar de escuchar ese archivo, luego comenzar a escuchar con los nuevos enlaces.