public String split(String word) {

        StringBuilder ret = new StringBuilder(word.length() + 2);
        int i = 0;
        

        current = first;
        int ns = word.length();
        word = fullWord(word);
        int max = word.length() - 1;
        ns = max - ns;
        for (char c : word.toCharArray()) {

            if ((i > ns && i < max) && (!current.hasConnection(""+c))) {
                ret.append('-');
            }

            String after = "";
            if(backoff && !current.hasConnection(""+c)) {
                current = nextState("" + c);
                if(!current.hasConnection(""+c)&&(i+1)<max)
                    after = "-";
            }

            current = nextState("" + c);

            ret.append(c+after);
            ++i;
        }

        return ret.toString().replaceAll("--","-");
    }