A method of hair coloring which comprises: a) determining an initial color-state of the hair and obtaining by user-input or by an optical measurement an assessment of an initial damage-state of the hair; b) setting a preferred target color-state and a maximum hair-damage-threshold based on the assessment of initial damage; c) according to the assessed initial damage-state of the hair, determining whether a hair-coloring treatment is available that is predicted to transform the color-state of the hair successfully from the initial color-state to the preferred target color-state, and to maintain the damage-state of the hair below the maximum hair-damage-threshold; then d) if the determination in step c) is positive, determining the composition of the hair-coloring treatment, and dispensing from a dispenser device ingredients of the hair-coloring treatment; or e) if the determination in step c) is negative, performing at least one of the following: (i) presenting for selection by a user one or more alternative hair-coloring treatments predicted to maintain the damage-state of the hair below the maximum hair-damage threshold while minimizing the deviation of the predicted color-state from the preferred target color-state; determining the composition of the one or more alternative hair-coloring treatments, and dispensing from a dispenser device ingredients of the alternative hair-coloring treatment selected by the user; and (ii) generating an alert signal that a suitable hair-coloring treatment to achieve the preferred target color-state is not available. a) determining an initial color-state of the hair and obtaining by user-input or by an optical measurement an assessment of an initial damage-state of the hair; b) setting a preferred target color-state and a maximum hair-damage-threshold based on the assessment of initial damage; c) according to the assessed initial damage-state of the hair, determining whether a hair-coloring treatment is available that is predicted to transform the color-state of the hair successfully from the initial color-state to the preferred target color-state, and to maintain the damage-state of the hair below the maximum hair-damage-threshold; then d) if the determination in step c) is positive, determining the composition of the hair-coloring treatment, and dispensing from a dispenser device ingredients of the hair-coloring treatment; or e) if the determination in step c) is negative, performing at least one of the following: (i) presenting for selection by a user one or more alternative hair-coloring treatments predicted to maintain the damage-state of the hair below the maximum hair-damage threshold while minimizing the deviation of the predicted color-state from the preferred target color-state; determining the composition of the one or more alternative hair-coloring treatments, and dispensing from a dispenser device ingredients of the alternative hair-coloring treatment selected by the user; and (ii) generating an alert signal that a suitable hair-coloring treatment to achieve the preferred target color-state is not available. (i) presenting for selection by a user one or more alternative hair-coloring treatments predicted to maintain the damage-state of the hair below the maximum hair-damage threshold while minimizing the deviation of the predicted color-state from the preferred target color-state; determining the composition of the one or more alternative hair-coloring treatments, and dispensing from a dispenser device ingredients of the alternative hair-coloring treatment selected by the user; and (ii) generating an alert signal that a suitable hair-coloring treatment to achieve the preferred target color-state is not available.