def word_count(phrase):
    """
    given a phrase, count the occurrences of each word in that phrase

    words comprise alphanumeric characters and are separated by anything else
    """
    counts = {}

    for word in ''.join(
            map(lambda c: c.lower() if c.isalnum() else ' ', phrase)).split():
        try:
            counts[word] = counts[word] + 1
        except KeyError:
            counts[word] = 1

    return counts