For completeness sake, time for an old school automata package: vaucanson-g! :)
Compile with xelatex:
\documentclass{article}
\usepackage{vaucanson-g}
\usepackage{amsmath}
\begin{document}
\begin{VCPicture}{(0,-2)(2,2)}
\State[1]{(-2,2)}{STATEONE}
\FinalState[2]{(2,2)}{STATETWO}
\FinalState[3]{(0,0)}{STATETHREE}
\Initial{STATEONE}
\FinalR{ne}{STATETWO}{\text{return}(a)}
\FinalR{ne}{STATETHREE}{\text{return}(b)}
\LArcL{STATEONE}{STATETWO}{a}
\LArcR{STATEONE}{STATETHREE}{b}
\end{VCPicture}
\end{document}
The output:

Update, per OP request:
\documentclass{article}
\usepackage{vaucanson-g}
\begin{document}
\begin{VCPicture}{(0,-2)(2,2)}
\State[1]{(-2,2)}{STATEONE}
\FinalState[2]{(2,2)}{STATETWO}
\FinalState[3]{(0,0)}{STATETHREE}
\Initial{STATEONE}
\LArcL{STATEONE}{STATETWO}{a}
\LArcR{STATEONE}{STATETHREE}{b}
\rput(4,2){\LARGE return$(a)$}
\rput(2,0){\LARGE return$(b)$}
\end{VCPicture}
\end{document}
The new output:

tikz/pgfmanual? see section 24, pg 258 – cmhughes Apr 24 '13 at 01:07labeloption:\node[<options>, label=below right:return(b)] {3};– Qrrbrbirlbel Apr 24 '13 at 01:54,that should not split by option spliter in{ }. For example:\node[state,accepting] [label=below right:{return(OP-AR,PLUS)}](4) [above right of=3] {$4$};– Qrrbrbirlbel Apr 24 '13 at 02:28