Split ``text`` by ``token`` into at least ``expected`` number of results.
    
    When ``token`` is ``None``, the default for Python ``str.split`` is used, 
    which will split on all whitespace.
    
    ``token`` may also be a regex.
    
    If actual number of results is less than ``expected``, pad with ``default``.
    
    If ``strip``, than do just that to each result.

def splitter(text, token=None, expected=2, default='', strip=False):
    '''
    Split ``text`` by ``token`` into at least ``expected`` number of results.
    
    When ``token`` is ``None``, the default for Python ``str.split`` is used, 
    which will split on all whitespace.
    
    ``token`` may also be a regex.
    
    If actual number of results is less than ``expected``, pad with ``default``.
    
    If ``strip``, than do just that to each result.
    '''
    if is_string(token) or token is None:
        bits = text.split(token, expected - 1)
    else:
        bits = [s for s in token.split(text, expected) if s]
        
    if strip:
        bits = [s.strip() for s in bits]
    
    n = len(bits)
    while n < expected:
        bits.append(default)
        n += 1
    
    return bits