code: func (r *router) addRoute(topic string, callback MessageHandler) {
  	r.Lock()
  	defer r.Unlock()
  	for e := r.routes.Front(); e != nil; e = e.Next() {
  		if e.Value.(*route).match(topic) {
  			r := e.Value.(*route)
  			r.callback = callback
  			return
  		}
  	}
  	r.routes.PushBack(&route{topic: topic, callback: callback})
  }
docs: // addRoute takes a topic string and MessageHandler callback. It looks in the current list of
  // routes to see if there is already a matching Route. If there is it replaces the current
  // callback with the new one. If not it add a new entry to the list of Routes.