def _annotate_point(ax, annot_tuple, xytext=None, **kwargs):
    """
    Use ax to annotate a given tuple.
    
    annot_tuple should be (text, (x,y)) 
    but can have additional postional or keyword args
    EG: (text, (x,y), {'rotation': 45})
    
    Extra args will be merged with kwargs. This allows for global settings to be 
    overridden by a sigle label.
    """
    text, pos = annot_tuple[:2]

    if len(annot_tuple) > 2:
        # shallow copy keyword arguments
        annot_kwargs = dict(kwargs)
        annot_kwargs.update(annot_tuple[2])
    else:
        annot_kwargs = kwargs

    return ax.annotate(text, pos, xytext=xytext, **annot_kwargs)