Describe the bug
Handlebars.net throws IndexOutOfRangeException from HandlebarsDotNet.PathStructure.PathResolver.ResolvePath() on execution of compiled templates that have loose closing blocks.
Examples of templates:
{{#if 0}}test{{/if}}{{/unless}}
{{#if 1}}{{#unless 0}}test{{/if}}{{/unless}}{{/if}}
Expected behavior:
Handlebars.net compiler should catch this type of template errors during parsing and building expression trees and throw HandlebarsCompilerException with a meaningful error message.
Test to reproduce
[Fact]
public void TestLooseClosingBlockExpressionException()
{
Assert.Throws<HandlebarsCompilerException>(() =>
{
Handlebars.Compile("{{#if 0}}test{{/if}}{{/unless}}")(new { });
});
}