The thing is that the dictionary and this lookup_table share state. So if I change the dictionary somewhere but forget to change this table then the two are out of sync and something unexpected will happen. So it would be easier if the two were linked somehow. One easy way of doing that would be to have the lookup table be a member of the dictionary collection and have all the functions that modify the dictionary do the appropriate thing for the table as well. You can still have the options to enable or disable the table just like now. 

For example, in the file plover.gui.add_translation there is a dialog that modifies the dictionary in the on_add_translation function. But I don't think it's been updated yet to keep this table up to date. It seems like this will be an easy mistake to make.