Update WidgetRegister to use std::unordered_map