import re


def get_words(s):
    """
    Splits a string into an iterable of words.

    :param s: the string to split.
    :return: an iterable.

    >>> get_words("Hi! My name is Anne Marie. What is yours?")
    ['Hi', 'My', 'name', 'is', 'Anne', 'Marie', 'What', 'is', 'yours']

    >>> get_words("Hi! My name is Anne-Marie. What's yours?")
    ['Hi', 'My', 'name', 'is', 'Anne-Marie', "What's", 'yours']
    """
    # pattern = r"[\w']+"
    # return re.findall(pattern, s)
    # pattern = r'\W+'
    pattern = r"[^\w'\-]"
    words = re.split(pattern, s)
    # remove 'empty' words
    words = [w for w in words if w]
    return words