Recursive subroutines

Hi all,
I have created subroutine that called itself, but the result was displayed incorrect on output console
So, May I create a subroutine that can call itself in dialplan?
Contents of extensions.conf file were:

exten => s,1,Set(LOCAL(Count)=${ARG1})
exten => s,2,Set(LOCAL(Counter)=1)
exten => s,3,While($[${Counter} <= ${Count}])
exten => s,4,GotoIf($[${Count} = 2]?:6)
exten => s,5,GoSub(subRecursiveRoutine,s,1(4))
exten => s,6,Verbose(2,Counter=${Counter},Count=${Count})
exten => s,7,Set(Counter=$[${Counter} + 1])
exten => s,8,EndWhile
exten => s,9,Return

exten => 100,1,GoSub(subRecursiveRoutine,s,1(2))

I have used SIP phone to dial to 100 extension, I have seen on output console only 5 verbose messages. That’s incorrect

Please help me!