Initial review

The most recent commit message is so accurate.

This prefix handling seems quite awkward, and given that we have only a small number of lists I'm not sure that it's worth it.  Could we make some sort of `has_prefix` method on the List class and just do this with a simple loop and lookup?

```
for prefix in prefixes:
    for list in lists_served:
        if list.has_prefix(prefix):
            ...blah blah...
```

It would be (IMHO) clearer and potentially use less memory, for not very much of a performance penalty.