public static string[] GetConjugations(string verb)
        {
            switch (verb)
            {
            case "avoir":
                return(new[] { "aie", "aies", "ait", "ayons", "ayez", "aient" });

            case "falloir":
                return(new[] { "", "", "faille", "", "", "" });

            case "savoir":
                return(Endings.AddEndings("sach"));

            case "pouvoir":
                return(Endings.AddEndings("puiss"));

            case "pleuvoir":
                return(Endings.AddEndings("pleuv"));
            }

            if (verb.EndsWith("seoir"))
            {
                var stem = verb.TrimEnd("eoir");
                if (verb.EndsWith("asseoir"))
                {
                    return(AddEndings(Endings, new ComplexStem(stem + "oi", stem + "oy")));
                }

                return(Endings.AddEndings(stem + "iƩ"));
            }

            ComplexStem complexStem = GetComplexStem(verb);

            if (complexStem != null)
            {
                return(AddEndings(Endings, complexStem));
            }

            var present  = PresentConjugator.GetConjugations(verb);
            var nousForm = present[3];

            var regularStem = nousForm.TrimEnd("ons");

            return(Endings.AddEndings(regularStem));
        }
 private static string[] AddEndings(string[] endings, ComplexStem complexStem)
 {
     return(endings.MatchNousVous(
                ending => complexStem.NonNousVousStem + ending,
                ending => complexStem.NousVousStem + ending));
 }