You're working in an office. If a question comes up, the person to consult is you. If the person to consult doesn't know the answer, consult their manager. Recurse until you have the answer.

So:

    ask( person from, person to ):
      if not: from knows the answer
         ask( from's manager, from )
      tell( from, to )

and invoke this with 

    ask(me,me)

(You still have to define `tell(from,to)` and make sure that's a no-op if `from==to`.)

I like this example because it is not trivially iteratable as tail recursion. This explicitly goes up and down the stack.