Background
-----------------
Take these two puppet module manifest paths:
1.  /home/pjfoley/puppet/modules/profile/manifests/server/init/init.pp
2.  /home/pjfoley/puppet/modules/profile/manifests/server/init/base.pp

The puppet autoloader will be able to load these two manifests if you use call them this way
1.  profile::server::init
2.  profile::server::init::base

I have extracted/paraphrased some relevant points from the offical puppet doc's located here http://docs.puppetlabs.com/puppet/latest/reference/modules_fundamentals.html
> Modules are just directories with files, arranged in a specific, predictable structure. The manifest files within a module have to obey certain naming restrictions.

A good quick reference guide - http://docs.puppetlabs.com/puppet/latest/reference/modules_fundamentals.html#module-layout:

Essentially init.pp is a special file to the puppet autoloader, when you call a module the autoloader passes the namespace and navigates through the path till it gets to the tip of the path, if the tip is a folder name it will automatically look for an init.pp file.  If the tip is a file it will load that. 

Reason for using it
--------------------------

I have used the first_time variable to detect the very first instance going through the while loop and if it is an init to not include it in the module and basename path.  Every other instance of init should be included.

I will try the snip.c but reading the Ultisnips doc's I do not believe it will meet my needs as the detection is occuring within the function code and I get the feeling snip.c is set after returning the value?